home *** CD-ROM | disk | FTP | other *** search
- // VENTANA2
- //(C) Anubis Software Junio 1995
- // Esta librería, pretende mejorar la librería VENTANA.H aplicando los
- // nuevos conocimientos sobre el tema que tenemos. Esta librería no
- // utiliza objetos ni tampoco las interrupciones de la BIOS por razones
- // de orgullo y eficiencia.
-
- // NOTAS REMARCABLES:
- // ------------------
-
- // -Este sistema, debe ser compilado con el modelo de código Compact,
- // Large o Huge, porque utiliza muchísima memoria, y lo necesita de verdad.
- // -Como el sistema de menus usa la pantalla 1 como auxiliar, el sistema
- // de ventanas, que irá conjuntamente con él. También utilizará la pantalla
- // 1 como auxiliar. Queda libre para uso temporal en otros algoritmos.
- // -Según este sitema, es posible escribir en cualquier ventana, e
- // incluso en el fondo de la pantalla, sin que sea necesario que sea la
- // ventana seleccionada. Para la escritura en pantalla hay que utilizar una
- // función especial proporcionada por la librería, y se debe tener en
- // cuenta el hecho de que haya ventanas abiertas o no.
- // -Debe proporcionarse un sistema de refresco de pantalla, para hacer
- // posible la visualización de datos nuevos no escritos en la ventana
- // principal.
- // -Lo que se escribe en cada ventana, corre por cuenta del usuario.
- // -Todas las ventanas, deben poder ser accesibles a pesar de que no
- // estén en visualización.
- #ifndef VENTANA2.H
- #define VENTANA2.H
-
- // -----------------------------------+
- // Inclusión de librerias Borland C++ |
- // -----------------------------------+
- #include <dos.h>
- #include <mem.h>
- #include <conio.h>
- #include <stdio.h>
- #include <string.h>
-
-
- // ---------------------------------------+
- // Inclusión de librerias Anubis Software |
- // ---------------------------------------+
- #include "cadena.h"
- #include "mdefs.h"
- #include "mouse.h"
- #include "textmode.h"
- #include "idlexec.h"
- #include "tecexec.h"
- #include "colores.h"
-
-
- // -------------------------+
- // Definición de constantes |
- // -------------------------+
- #define MAX_WINDOWS 50
- #define ANCHO_PANTALLA 80
- #define ALTO_PANTALLA 25
-
- // Definición de tipos para ventana_define
- #define V_TEXTO 0
- #define V_PRESENTACION 1
- #define V_FORM 2
- #define NO_TYPE_WINDOW 3
-
- // Definición de los errores de la libreria.
- #define COORD_NOT_CORRECTS 1
-
- // Definición de literales de la librería.
- #define SENCILLA 0
- #define MARCO 1
- #define TITULO 2
- #define INFORMACION 4
- #define H_BARRA 8
- #define V_BARRA 16
- #define CERRAR 32
- #define AMPLIAR 64
- #define ACTIVA 1
- #define DESACTIVA 0
- #define MOVER 128
- #define MODIFICAR 256
- #define CAMBIAR 512
- #define PULSAR_VENTANA 1024
- #define DPULSAR_VENTANA 2048
-
- // Definición de algunos códigos de retorno adicionales
- #define H_BARRA_DERECHA 9
- #define H_BARRA_IZQUIERDA 10
- #define V_BARRA_ARRIBA 11
- #define V_BARRA_ABAJO 12
- #define H_BARRA_BOTON 13
- #define V_BARRA_BOTON 14
-
- // -----------------------------------------+
- // Definición de estructuras de la libreria |
- // -----------------------------------------+
- typedef struct {
- char Nombre[80];
- char Pantalla[4000];
- WORD Caracteristicas;
- BYTE PosX,
- PosY,
- Ancho,
- Alto;
- char ColorFondo,
- ColorTexto,
- ColorLetra;
- char AI,
- AD,
- ABI,
- ABD,
- Horizontal,
- Vertical,
- Cerrar[3],
- Expandir[3],
- VBarra[3],
- HBarra[3],
- Posicion,
- VPosicion,
- HPosicion;
- BYTE CursorX, // Son las Posiciones relativas a
- CursorY; // PosX y PosY, no las absolutas a la ventana.
- char EstadoCursor,
- TipoVentana;
- void far * Apuntador;
- }Ventana2;
-
- // ---------------------------------+
- // Definición de variables globales |
- // ---------------------------------+
- extern Ventana2 *PilaVentanas[MAX_WINDOWS];
- extern Ventana2 VentFondo;
- extern int IndPilaVentanas;
- extern char Vpatron[80][25];
-
-
- // ------------------------------------------+
- // Declaracion de macros de la libreria |
- //-------------------------------------------+
- // Funciones con la pila de ventanas.
- #define TopeVentanas PilaVentanas[IndPilaVentanas]
- #define EmpilaVentana(vent) PilaVentanas[++IndPilaVentanas] = vent
- #define DesempilaVentana() --IndPilaVentanas
-
-
- // Funciones para escritura de un solo caracter en ventanas.
- #define EscribeCV(vent,car,x,y,ct,cf) EscribeCPAV(vent,car,CARACTER(x,y),COLOR(ct,cf))
- #define EscribeCAV(vent,car,x,y,atr) EscribeCPAV(vent,car,CARACTER(x,y),atr)
- #define EscribeCPV(vent,car,pos,ct,cf) EscribeCPAV(vent,car,pos,COLOR(ct,cf))
-
- // Funciones para escritura de una cADena de caracteres en ventanas.
- #define EscribeV(vent,car,x,y,ct,cf) EscribePAV(vent,car,CARACTER(x,y),COLOR(ct,cf))
- #define EscribeAV(vent,car,x,y,atr) EscribePAV(vent,car,CARACTER(x,y),atr)
- #define EscribePV(vent,car,pos,ct,cf) EscribePAV(vent,car,pos,COLOR(ct,cf))
-
-
- // ------------------------------------------+
- // Declaración de prototipos de la librería |
- // ------------------------------------------+
- void EscribeCPAV(Ventana2 *,char ,WORD, BYTE );
- void EscribePAV(Ventana2 *,char *,WORD, BYTE );
- void EmulacionPantalla(Ventana2 *);
- void VentanaBorrar(Ventana2 *);
- void VentanaDefine(Ventana2*, int);
- void VentanaGotoXY(Ventana2 *,BYTE ,BYTE );
- void VentanaPutch(Ventana2 *,unsigned char );
- void VentanaPuts(Ventana2 *, char *);
- void VSubePantalla(Ventana2 *);
- void VBajaPantalla(Ventana2 *);
- void VAvanzaPantalla(Ventana2 *);
- void VRetrasaPantalla(Ventana2 *);
- void VentanaPoner(Ventana2 *,int );
- void VentanaInicializar(void);
- void VPintarTodo(void);
- boolean VentanaCerrar(Ventana2 *);
- void VentanaAbrir(Ventana2 *);
- void VDibujarMarco(Ventana2 *, char );
- int VentanaMover(Ventana2 *,int ,int );
- void VMoverPantalla(void);
- int EvntVentanas(int *);
- void VCambiarPrincipal(int );
- void VentanaModificar(void);
- void VControlaCursor(void);
- void VentanaCoordenadas(Ventana2 *,int, int, int, int);
- void VentanaTextcolor(Ventana2 *,char);
- void VentanaTextbackground(Ventana2 *,char);
- void VentanaTitulo(Ventana2 *, char *);
- void VentanaTipoCursor(Ventana2 *, char);
- void VCPatron(void);
-
-
-
- #endif
-
-
-